Hibernate হল একটি শক্তিশালী ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডাটাবেস এবং জাভা অবজেক্টের মধ্যে সম্পর্ক স্থাপন করে। Spring Boot Hibernate-এর সাথে কাজ করা সহজতর করে, কারণ এটি অটো-কনফিগারেশন এবং স্টার্টার ডিপেনডেন্সির মাধ্যমে ডেভেলপারদের অধিকাংশ কাজ সরলীকৃত করে।
Hibernate এবং Spring Boot ইন্টিগ্রেশন প্রক্রিয়া
ডিপেনডেন্সি যোগ করা (Maven)
Hibernate এবং Spring Boot Integration এর জন্য প্রথম ধাপ হলো প্রয়োজনীয় ডিপেনডেন্সি যোগ করা। pom.xml ফাইলটিতে নিম্নলিখিত ডিপেনডেন্সি যুক্ত করুন:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
ডাটাবেস কনফিগারেশন
application.properties বা application.yml ফাইলের মাধ্যমে ডাটাবেস সংযোগ এবং Hibernate-এর প্রয়োজনীয় সেটিংস কনফিগার করুন:
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=1234
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
নোট:
spring.jpa.hibernate.ddl-autoএর মানupdate,create,validateইত্যাদি হতে পারে। ডেভেলপমেন্টের জন্যupdateঅথবাcreateব্যবহার করা যেতে পারে, তবে প্রোডাকশনে সতর্কতার সাথে ব্যবহার করুন।
Hibernate Entity ক্লাস তৈরি
Hibernate Entity হলো একটি জাভা ক্লাস যা ডাটাবেসের টেবিলের প্রতিনিধিত্ব করে। এটি তৈরি করতে @Entity এবং @Table অ্যানোটেশন ব্যবহার করা হয়। উদাহরণস্বরূপ:
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Double price;
// Getter and Setter
}
Spring Data JPA Repository তৈরি
Hibernate Integration-এ Spring Data JPA ব্যবহার করে রেপোজিটরি তৈরি করতে হবে। এটি ডাটাবেসে CRUD অপারেশন সহজ করে তোলে:
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository<Product, Long> {
}
সার্ভিস লেয়ার তৈরি
সার্ভিস লেয়ার ডেটা প্রসেসিং এবং ব্যবসায়িক লজিক পরিচালনার জন্য ব্যবহৃত হয়। উদাহরণ:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public List<Product> getAllProducts() {
return productRepository.findAll();
}
public Product saveProduct(Product product) {
return productRepository.save(product);
}
}
REST কন্ট্রোলার তৈরি
Spring Boot-এ RESTful API তৈরি করতে কন্ট্রোলার ব্যবহার করা হয়:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping
public List<Product> getAllProducts() {
return productService.getAllProducts();
}
@PostMapping
public Product saveProduct(@RequestBody Product product) {
return productService.saveProduct(product);
}
}
Hibernate Integration টেস্ট করা
অ্যাপ্লিকেশন রান করার পর ডিফল্টভাবে MySQL ডাটাবেসে Product নামে একটি টেবিল তৈরি হবে। REST API এর মাধ্যমে ডেটা ইনসার্ট বা ফেচ করা যাবে। উদাহরণ:
GET API:
GET http://localhost:8080/products
POST API:
POST http://localhost:8080/products
Content-Type: application/json
Body:
{
"name": "Laptop",
"price": 75000.00
}
Hibernate এবং Spring Boot Integration এর সুবিধা
- স্বয়ংক্রিয় টেবিল ক্রিয়েশন: Hibernate Entity থেকে ডাটাবেস টেবিল তৈরি সহজ হয়।
- কাস্টম কুয়েরি: সহজে জটিল কুয়েরি পরিচালনা করা যায়।
- ডাটাবেস ইন্ডিপেনডেন্স: Hibernate-এর ডায়ালেক্ট সমর্থন বিভিন্ন ডাটাবেসে সহজ মাইগ্রেশন নিশ্চিত করে।
- উন্নত ডেটা ম্যানেজমেন্ট: কম কোডে শক্তিশালী ORM সমাধান।
Hibernate এর সাথে Spring Boot এর ইন্টিগ্রেশন ডেটাবেস-নির্ভর অ্যাপ্লিকেশন ডেভেলপমেন্টকে অনেক বেশি কার্যকর এবং দ্রুত করে তোলে।
Read more